home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / man / cmds.fmt / getopt.man < prev    next >
Text File  |  1990-11-06  |  3KB  |  133 lines

  1.  
  2.  
  3.  
  4. GETOPT                    User Commands                    GETOPT
  5.  
  6.  
  7.  
  8. NNAAMMEE
  9.      getopt - format flags for shell scripts
  10.  
  11. SSYYNNOOPPSSIISS
  12.      ggeettoopptt flag_spec argument ...
  13.  
  14. DDEESSCCRRIIPPTTIIOONN
  15.      _G_e_t_o_p_t is a program intended to be called by scripts to
  16.      ``canonicalize'' their arguments before processing them,
  17.      just as the _g_e_t_o_p_t(3) routine does for C programs.  (This
  18.      need for scripts is usually most noticeable in the way
  19.      _l_i_n_t(1) handles the --nn flag.)
  20.  
  21.      The following two examples provide the initial parsing for a
  22.      script which takes two flags, --aa and --bb, the second of which
  23.      takes an argument.
  24.           # For /bin/csh...
  25.           set argv = (`getopt "ab:" $*`)
  26.           if ( $status ) then
  27.               echo "Read the documentation and try again." >/dev/tty
  28.               exit 1
  29.           endif
  30.           set Aflag=0
  31.           set Name=NONE
  32.           while "$1" != "--"
  33.               switch ("$1")
  34.                   case '-a':
  35.                       set Aflag=1
  36.                       breaksw
  37.                   case '-b':
  38.                       shift
  39.                       set Name=$1
  40.                       breaksw
  41.               endsw
  42.               shift
  43.           end
  44.           shift
  45.           echo Aflag=$Aflag / Name=$Name / Remaining args are $*
  46.  
  47.           # For /bin/sh...
  48.           set -- `getopt "d:s" $@`
  49.           if test $? != 0 ; then
  50.               echo "Read the documentation and try again."
  51.               exit 1
  52.           fi
  53.           Aflag=0
  54.           Name=NONE
  55.           for f
  56.           do
  57.               case "$f" in
  58.                   -a) Aflag=1
  59.                       ;;
  60.  
  61.  
  62.  
  63. Sprite v1.0                   LOCAL                             1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. GETOPT                    User Commands                    GETOPT
  71.  
  72.  
  73.  
  74.                   -b) shift
  75.                       Name=$2
  76.                       ;;
  77.                   --) break
  78.                       ;;
  79.               esac
  80.               shift
  81.           done
  82.           shift
  83.           echo Aflag=$Aflag / Name=$Name / Remaining args are $*
  84.  
  85. DDIIAAGGNNOOSSTTIICCSS
  86.      The program burps the standard _g_e_t_o_p_t(3) diagnostics to
  87.      standard error, and exits with a non-zero status if an error
  88.      occurs.  It is arguable wrong that the diagnostics imply
  89.      that the program is named ``getopt'' rather than the real
  90.      name of the script.  It is undeniably AT&T-compatible to do
  91.      this, however.
  92.  
  93. SSEEEE AALLSSOO
  94.      csh(1), sh(1), getopt(3)
  95.  
  96. AAUUTTHHOORR
  97.      Rich $alz
  98.      Mirror Systems
  99.      (mirror!rs, rs@mirror.TMC.COM)
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129. Sprite v1.0                   LOCAL                             2
  130.  
  131.  
  132.  
  133.